package somospunto.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import somospunto.excepcion.DAOExcepcion;
import somospunto.modelo.Producto;
import somospunto.util.ConexionBD;


public class ProductoDAO extends BaseDAO {
	
	public void insertar(Producto vo) throws DAOExcepcion {
		System.out.println("ProductoDAO: insertar(Producto vo)");
		String query = "INSERT INTO Producto(nom_prod, marca_prod, precio_prod, habil_prod," +
				"categoria_prod, imagen_prod, supermercado_idsupermercado, idproducto) VALUES (?,?,?,?,?,?,?,?)";
		System.out.println("insertando...");
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
		
			stmt.setString(1, vo.getNombre());
			stmt.setString(2, vo.getMarca());
			stmt.setString(3, vo.getPrecio());
			stmt.setString(4, vo.getHabilitado());
			stmt.setString(5, vo.getCatagoria());
			stmt.setString(6, vo.getImagen());
			stmt.setInt(7, 1);
			stmt.setString(8, null);
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			}

		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage()+" cerca...");
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		System.out.println("la hiciste!");
	}
		public Collection<Producto> buscarProducto(String nombre) throws DAOExcepcion {
			System.out.println("Ingrese el producto a buscar)");
			String query = "SELECT * FROM Producto" +
					"WHERE nom_prod = (?)" ;
			Collection<Producto> c = new ArrayList<Producto>();
			System.out.println("Marquito");
			Connection con = null;
			PreparedStatement stmt = null;
			ResultSet rs = null;
						
			try {
				con = ConexionBD.obtenerConexion();
				stmt = con.prepareStatement(query);
				stmt.setString(1, "%" + nombre + "%");	
				rs = stmt.executeQuery();
				while (rs.next()) {
					Producto vo = new Producto();
				
					vo.setIdproducto(rs.getInt("idproducto"));
					vo.setNombre(rs.getString("nombre"));
					vo.setMarca(rs.getString("marca"));
					vo.setPrecio(rs.getString("precio"));
					vo.setDescripcion(rs.getString("descripcion"));
					vo.setImagen(rs.getString("imagen"));
						
				}
				
				int i = stmt.executeUpdate();
				if (i != 1) {
					throw new SQLException("No se pudo insertar");
				}
			} catch (SQLException e) {
				System.err.println(e.getMessage());
				throw new DAOExcepcion(e.getMessage());
			} finally {
				this.cerrarResultSet(rs);
				this.cerrarStatement(stmt);
				this.cerrarConexion(con);
			}
		return c;
		} 
	
	}
	


